package com.yjb.demo.tdengine.mapper;

import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

/**
 * @author yinjinbiao
 * @create 2024/6/21 14:43
 */
public interface SspMapper {

    /**
     * 根据组织获取集中式逆变器下的当日发电量
     * @param deptId
     * @return
     */
    List<HashMap> getJzsRfdlByDept(@Param("deptId") Long deptId);

    /**
     * 根据组织获取组串式逆变器下的当日发电量
     * @param deptId
     * @return
     */
    List<HashMap> getZcsRfdlByDept(@Param("deptId") Long deptId);

    /**
     * 根据时间计算累计发电量
     * @param deptId
     * @param startDate
     * @param endDate
     * @return
     */
    List<HashMap> getJzsfdlByDeptAndDate(@Param("deptId") Long deptId,@Param("startDate") String startDate,@Param("endDate") String endDate);

    /**
     * 根据时间计算累计发电量
     * @param deptId
     * @param startDate
     * @param endDate
     * @return
     */
    List<HashMap> getZcsfdlByDeptAndDate(@Param("deptId") Long deptId,@Param("startDate") String startDate,@Param("endDate") String endDate);

    /**
     * 获取组织下集成式逆变器的累计发电量
     * @param deptId
     * @return
     */
    List<HashMap> getJzsfdlByDept(@Param("deptId") Long deptId);

    /**
     * 获取组织下组串式逆变器的累计发电量
     * @param deptId
     * @return
     */
    List<HashMap> getZcsfdlByDept(@Param("deptId") Long deptId);

    /**
     * 根据站点获取集中式逆变器下的当日发电量
     * @param stationId
     * @return
     */
    List<HashMap> getJzsRfdlByStationId(@Param("stationId") Long stationId);

    /**
     * 根据站点获取组串式逆变器下的当日发电量
     * @param stationId
     * @return
     */
    List<HashMap> getZcsRfdlByStationId(@Param("stationId") Long stationId);

    /**
     * 根据时间计算站点下的发电量
     * @param stationId
     * @param startDate
     * @param endDate
     * @return
     */
    List<HashMap> getJzsfdlByStationIdAndDate(@Param("stationId") Long stationId, @Param("startDate") String startDate,@Param("endDate") String endDate);

    /**
     * 根据时间计算组串式逆变器下的发电量
     * @param stationId
     * @param startDate
     * @param endDate
     * @return
     */
    List<HashMap> getZcsfdlByStationIdAndDate(@Param("stationId") Long stationId, @Param("startDate") String startDate, @Param("endDate") String endDate);

    /**
     * 获取站点下集成式逆变器的累计发电量
     * @param stationId
     * @return
     */
    List<HashMap> getJzsfdlByStation(@Param("stationId") Long stationId);

    /**
     * 获取站点下组串式逆变器的累计发电量
     * @param stationId
     * @return
     */
    List<HashMap> getZcsfdlByStation(@Param("stationId") Long stationId);

    /**
     * 集成式逆变器
     * 获取站点下，该日期之前的累计发电量
     * @param stationId
     * @param endDate
     * @return
     */
    List<HashMap> getJzsfdlLastRowByStationIdAndDate(@Param("stationId") Long stationId, @Param("endDate") String endDate);

    /**
     * 组串式逆变器
     * 获取站点下，该日期之前的累计发电量
     * @param stationId
     * @param endDate
     * @return
     */
    List<HashMap> getZcsfdlLastRowByStationIdAndDate(@Param("stationId") Long stationId, @Param("endDate") String endDate);


    /**
     * 获取每个逆变器当前的日发电量和总发电量
     * @param deptId
     *
     * @return
     */
    List<HashMap> getCurrentFdl(@Param("deptId") Long deptId, @Param("stationId") Long stationId);

    /**
     * 根据时间获取组织的日发电量和累计发电量
     * @param deptId
     * @param startDate
     * @param endDate
     * @return
     */
    List<HashMap> getFdlByDate(@Param("deptId") Long deptId, @Param("stationId") Long stationId, @Param("startDate") String startDate,@Param("endDate") String endDate);

}
